package com.anytron.base.service;

import java.util.List;

import com.anytron.model.req.PageRequest;
import com.github.pagehelper.PageInfo;

import tk.mybatis.mapper.entity.Example;

public interface BaseService<T> {
	
	/**
	 * 分页查询
	 * @param pageRequest
	 * @param bean
	 * @return
	 */
	public PageInfo<T> page(PageRequest pageRequest, T bean);
	/**
	 * 条件查询
	 * @param bean
	 * @return
	 */
	public List<T> list(T bean);
	/**
	 * 主键查询
	 * @param key
	 * @return
	 */
	public T getByKey(Object key);
	/**
	 * 条件查询1个
	 * @param key
	 * @return
	 */
	public T getOne(T bean);
	/**
	 * 添加数据
	 * @param bean
	 * @return
	 */
	public int add(T bean);
	/**
	 * 更新数据
	 * @param bean
	 * @return
	 */
	public int update(T bean);
	/**
	 * 删除数据
	 * @param key
	 * @return
	 */
	public int delete(Object key);
	/**
	 * 条件删除数据
	 * @param key
	 * @return
	 */
	public int deleteByModel(T bean);
	/**
	 * 条件查询
	 * @param example
	 * @return
	 */
	public List<T> getByExample(Example example);
	
	public PageInfo<T> pageByExample(PageRequest pageRequest, Example example);
}
